package Java中的集合.ArrayListMethod;

import java.util.ArrayList;
import java.util.List;

/**
 * @Auther:云尚学Java
 */
//利用remove(e);删除某一个元素
public class RemoveObjectTest {
    public static void main(String[] args) {
        /**
         * 父类集合接口<数据类型> 集合名称=new 父类集合接口的实现类<数据类型>()
         * 按照集合的声明格式，去声明集合
         */
        List<Integer> list=new ArrayList<Integer>();
        /**
         * 利用add()向集合中新增一个元素
         * 每调用一次就代表新增一个元素
         */
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        /**
         * 2.删除某一个元素，利用remove(e)方法完成
         */
        list.remove(new Integer(1));//位于索引为0的位置
        /**
         * 重新获取索引为0位置的元素，看是否存在
         */
        int num=list.get(0);
        System.out.println("num:"+num);//2
        for(Integer i:list){
            System.out.println(i);
        }
    }
    /**
     * ArrayList集合元素删除会出现移位的现象，即删除某一个位置的元素后，后边的元素会依次向前移
     *
     * 所以在删除索引为0对应的元素后，再去获取索引为0的元素是2。就是因为剩余的2，3，4，5。4个元素，会依次向前移
     * 	    0-2
     * 	    1-3
     * 	    2-4
     * 	    3-5
     * 之所以向前移动就是因为ArrayList底层是数组，所以无论怎么删除，必须保证索引是连续的，只有这样才符合数组的思想。所以才会移动
     */
}
